<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    <script>

    let Builder = function () {

        /**
         * 通过入住人员，建造者帮你规划房间数量
         * @param p
         */
        function room(p) {
            if (p<=0){
                throw new Error("入住人数信息错误")
            }
            this.rooms = p<3?2:3;
        }

        /**
         * 通过预算金额，建造者帮你选择合适的面积
         * @param m
         */
        function space(m) {
            if(m<30){
                throw new Error("预算太低了。。。")
            }
            this.space = m
        }

        /**
         * 通过需求风格，建造者帮你设计风格
         * @param s
         */
        function style(s) {
            this.style = s
        }

        return class{
            /**
             *
             * @param p入住人员
             * @param m预算
             * @param s风格
             */
            constructor(p,m,s){
                room.call(this,p)
                space.call(this,m)
                style.call(this,s)
            }
        }
    }();

    let house = new Builder(2,100,"小清新");

    console.log(house);

    </script>

</body>
</html>